package com.car.order.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.car.order.dto.goodOrderInfo.PayOrderForm;
import com.car.order.dto.serviceOrderInfo.ServiceOrderInfoCreatDto;
import com.car.order.dto.serviceOrderInfo.ServiceOrderInfoDto;
import com.car.order.entity.ServiceOrderInfo;
import com.car.order.entity.form.serveOrderInfo.*;
import com.car.order.entity.param.serviceOrderInfo.AddReviewParam;
import com.car.order.entity.param.serviceOrderInfo.ServiceOrderInfoInsertParam;

import java.util.HashMap;
import java.util.List;
/**
 * @author 杜岷芫
 * @since 2024-08-29 10:40:34
 */
public interface ServiceOrderInfoService extends IService<ServiceOrderInfo> {

    Page<ServiceOrderInfoDto> findPage(ServiceOrderInfoFindPageForm form);

    List<ServiceOrderInfo> findList(ServiceOrderInfoFindListForm form);

    ServiceOrderInfo findById(String id);

    ServiceOrderInfoCreatDto insert(ServiceOrderInfoInsertParam form) throws Exception;

    ServiceOrderInfo update(ServiceOrderInfoUpdateForm form);

    void delete(Integer id);

    Page<ServiceOrderInfoDto> findPageByUserId(ServiceOrderInfoFindPageByUserIdForm form);

    String payOrder(PayOrderForm form, Integer userId) throws Exception;

    void payNotify(HashMap<String, String> params) throws Exception;

    ServiceOrderInfoDto changeState(ServeOrderInfoChangeStateForm form);

    ServiceOrderInfoDto verification(String verificationCode);

    void addReview(AddReviewParam param);
}